草庐IT

mysql GRANT + WHERE

全部标签

mysql - Yii2 find()/QueryBuilder 中带 WHERE 条件的 SELECT 子查询

我能够找到构建子查询的简单示例,但是当我需要包含WHERE条件时,我无法弄清楚也找不到解决方案。我正在尝试模拟以下语句...SELECTParentTable.*,(SELECTMAX(ChildTable.NumberField)FROMChildTableWHEREChildTable.FK_Id=ParentTable.Id)FROMParentTable我猜我需要类似...$query=ParentClass::find()->addSelect(ChildClass::find()->where('childTable.fk_id=parentTable.id')->max(

c# - 'Project2.Name' 中的未知列 'where clause'

我有一个简单的语句从我的mySQL数据库中获取数据,但它出现以下错误:[MySqlException(0x80004005):Unknowncolumn'Project2.Name'in'whereclause']MySql.Data.MySqlClient.MySqlStream.ReadPacket()+272MySql.Data.MySqlClient.NativeDriver.GetResult(Int32&affectedRow,Int64&insertedId)+68MySql.Data.MySqlClient.Driver.GetResult(Int32statement

mysql 逗号分隔的字符串不能通过使用过程在 where in(Array) 中工作?

在Mysql程序中:selectdistinctorg_fkfromuserwhereidin(IdList);idList="1,2,3"它只对第一个值起作用。 最佳答案 您不能使用IN运算符来与CSV字符串进行比较,只能与单独值的CSV列表进行比较。但是MySQL有一个函数FIND_IN_SET可能对这里有帮助:SELECTDISTINCTorg_fkFROMuserWHEREFIND_IN_SET(id,idList)>0;您可以阅读更多关于FIND_IN_SEThere.StackoverflowLink

sql - Select * from tbl where id>=5/* 然后将 id<5 的结果添加到查询 */

我有一个包含9行的表格。$id=5如果我使用SELECT*FROMtblWHEREid>=$id我得到5、6、7、8、9行。对于此查询,我想添加SELECT*FROMtblWHEREid的结果所以我将得到最后的5、6、7、8、9、1、2、3、4行。这是为了避免在数据库中访问两次然后将结果集添加到php中。编辑:是的,顺序很重要。谢谢你们的快速react。感谢@knittl(接受的答案)和@Swanand提供最佳答案。 最佳答案 你想要所有行吗?如果顺序是您要查找的顺序,请对结果集进行排序:SELECT*FROMtblORDERBYi

mysql - 如何使用WHERE IN mysql存储过程

如何传递数组并在存储过程中使用WHEREIN?我需要连接输入字符串还是什么?让我们说DELIMITER$$DROPPROCEDUREIFEXISTS`abc`.`table1`$$CREATEPROCEDURE`abc`.`test`(INsomestringVARCHAR(255))BEGINSELECT*FROMabc.table1WHEREflight_typeINsomestringEND$$DELIMITER; 最佳答案 您可以使用字符串连接和PREPARE语句来运行动态构建的查询。somestring必须以有效的SQL格

php - 当 WHERE 不匹配时,在 COUNT 列中显示 "0"?

我想做的是从一个表中检索所有数据,并根据用户在特定类别中玩的游戏数量对它们进行排序。有什么方法可以使用某种“COUNTWHERE”sql语句吗?这是我目前所拥有的。如果他们玩过“fps”类别的游戏,它只会返回用户,但我希望它以降序显示所有用户,即使他们没有玩过fps游戏。请原谅我糟糕的tableSELECTuser_data.user,COUNT(played_games.game_cat)as'count'FROMuser_data,played_gamesWHEREuser_data.user_id=played_games.user_idandplayed_games.game_

mysql GRANT + WHERE

我只想将权限授予mysql中的特定行。表:消息cols:从,到,消息GRANTALLONdb.messagesTO'jeffrey'@'localhost'WHEREmessages.from='jeffrey'ORmessages.to='jeffrey';有了这样的东西,用户只能访问他自己的消息。你知道如何解决这个问题吗? 最佳答案 根据GRANT命令,无法在每行的基础上设置权限级别(表/列,是的-但不是单独的行)。你可以设置一个View处理这个问题并授予用户访问View的权限。如下所示的View应根据当前用户为您提供消息:CR

MySQL - 在where子句中引用聚合列

这看起来很简单,但如果不进行子查询我似乎无法弄清楚(这似乎会显着减慢查询速度-几乎需要10秒而不是假设我有一张已发送文档的表格,我想选择自上次发送后更新的文档,以及从未发送过的文档。SELECTd.document_id,max(sd.document_sent_date)aslast_sent_dateFROMdocumentsdLEFTJOINsent_documentssdONd.document_id=sd.document_idWHERElast_sent_dateisNULLORlast_sent_date这样的事情可能吗?基本上,我想在我的where子句中使用max()的

MySQL - LONGTEXT 字段导致 SELECT-WHERE 语句挂起

由于LONGTEXT字段,我遇到了问题。一切正常,但是当执行带有任何WHERE子句的SELECT查询时,mysql进入休眠状态并且永远不会返回。只有80k条记录,显式WHERE比较工作正常。(有的记录超过1M,有的记录在700K左右,其他的只有60-100KB)。例如:[HANGs]SELECT*FROMitem_infoWHEREadded_on>'2013-02-1419:40:05'ANDadded_on这是正常行为吗?这是架构:CREATETABLE`item_info`(`item_id`bigint(20)NOTNULLAUTO_INCREMENT,`title_md5`v

php - Laravel dynamic where 使用 Query Builder 进行查询

我是Laravel的新手。我想使用laravel查询构建器进行动态查询。通常我可以在php中进行动态查询$where=array('hello'=>'world');functionget($where=null){if($where=="")$where="";//Functionwhichconvertswhereclauseintoquerieswheretoqueries($where);//convertswhereclause$sql="SELECT*FROM$tbl$where";return$sql;}echoget($where);如果where子句为null查询将是